import java.util.Random;

//给定一个很长的数组 (长度 1000w), 通过随机数的方式生成 1-100 之间的整数.
//实现代码, 能够创建两个线程, 对这个数组的所有元素求和.
//其中线程1 计算偶数下标元素的和, 线程2 计算奇数下标元素的和.
//最终再汇总两个和, 进行相加
//记录程序的执行时间.
class RanARR {
    public  static  int sum1=0;
    public  static  int sum2=0;
    int[] arr = new int[1000_0000];
    Random index = new Random();
   public  void set(){
       for (int i = 0; i <arr.length ; i++) {
           arr[i]=index.nextInt(100)+1;
       }
   }
   public void oddNumber(){
       for (int i = 1; i <arr.length ; i=i+2) {
           sum1=sum1+arr[i];
       }
   }
   public  void evenNumber(){
       for (int i = 0; i <arr.length ; i=i+2) {
           sum2=sum2+arr[i];
       }
   }
}
public class ThreadDemo2 {
    public static void main(String[] args) {
        long start=System.currentTimeMillis();
        RanARR arr=new RanARR();
        arr.set();
        Thread t1=new Thread(()->{
            arr.oddNumber();
        });
        Thread t2=new Thread(()->{
            arr.evenNumber();
        });
        t1.start();
        t2.start();
        try {
            t1.join();
            t2.join();
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        long end=System.currentTimeMillis();
        System.out.println(end-start+"ms");
        System.out.println(RanARR.sum1+RanARR.sum2);
    }
}
